
public class Camera {
	private Vector eye = null;
	private Vector direction = null;
	private Vector up = null;
	private double screenDist;
	private double screenWidth;

	public Camera(){
		this.eye = new Vector();
		this.direction = new Vector();
		this.up = new Vector();
		this.screenDist = 0;
		this.screenWidth = 2.0;
	}
	
	public Camera(Vector eye, Vector direction, Vector up, double screenDist, double screenWidth){
		this();
		this.eye = eye;
		this.direction = direction;
		this.up = up;
		this.screenDist = screenDist;
		this.screenWidth = screenWidth;
	}
	
	public static Camera getCamera_lookAt(Vector eye, Vector lookAt, Vector up, double screenDist, double screenWidth) {
		Vector direction = Vector.sub_n(lookAt, eye);
		return new Camera(eye, direction, up, screenDist, screenWidth);
	}
	
	public void setEye(Vector eye){
		this.eye=eye;
	}
	
	public Vector getEye(){
		return this.eye;
	}

	public void setDirection(Vector direction){
		this.direction = direction;
	}
	
	public Vector getDirection(){
		return this.direction;
	}
	
	public void setUp(Vector up){
		this.up = up;
	}
	
	public Vector getUp(){
		return this.up;
	}
	
	public void setScreenDist(double screenDist){
		this.screenDist = screenDist;
	}
	
	public double getScreenDist(){
		return this.screenDist;
	}
	
	public void setScreenWidth(double screenWidth){
		this.screenWidth = screenWidth;
	}
	
	public double getScreenWidth(){
		return this.screenWidth;
	}

	public static Camera getDBGcamera(){
		//Vector myEye = new Vector(10,0,0);
		//Vector myDirection = new Vector(-1,0,0);
		Vector myEye = new Vector(10,4,-5);
		Vector myUp = new Vector(0,1,0);
		return getCamera_lookAt(myEye, new Vector(), myUp, 2.0, 3.0);
	}
	
	
	
}
